package com.txzt.gaea.upgrade.project.domain.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.txzt.gaea.flow.vo.FlowBizStepVo;
import lombok.Builder;
import lombok.Data;
import org.beetl.sql.core.annotatoin.InsertIgnore;
import org.beetl.sql.core.annotatoin.Table;
import org.beetl.sql.core.annotatoin.UpdateIgnore;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;


@Data
@Table(name="tb_project_delay")
public class ProjectDelay implements Serializable {

    private static final long serialVersionUID = 1L;

    /** 项目延期id */
    private Long id;
    /** 项目id */
    private Long projectId;
    /** 流程id */
    private Long flowId;
    /** 申请延期理由 */
    private String delayReason;
    /** 项目负责人意见 */
    private String projectLeaderOpinion;
    /** 延期后预计完成时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date estimatedFinishTime;
    /** 附件 */
    private String attachment;
    /** 备注 */
    private String remark;
    /** 延期申请人 */
    private Long createBy;
    /** 延期申请时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date createTime;


    /** 全局状态 */
    @UpdateIgnore
    @InsertIgnore
    private Integer globalStatus;

    /** 提报部门 */
    @UpdateIgnore
    @InsertIgnore
    private Long deptId;

    /** 提报部门 */
    @UpdateIgnore
    @InsertIgnore
    private List<FlowBizStepVo> stepVoList;

    /** 延期申请人名 */
    @UpdateIgnore
    @InsertIgnore
    private String createByName;
}
